Skip to content

feat(notebook): single-page onboarding; Next step navigates via postMessage - #73

Merged
bjoaquinc merged 11 commits into
develfrom
feat/notebook-next-to-org-setup
Jul 8, 2026
Merged

feat(notebook): single-page onboarding; Next step navigates via postMessage#73
bjoaquinc merged 11 commits into
develfrom
feat/notebook-next-to-org-setup

Conversation

@bjoaquinc

@bjoaquinc bjoaquinc commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Overview

The onboarding notebook drops its second page ("You're all set" + agent-prompt copy card). It's now a single page — the query workbench — and the "Next step" button that appears after the first query sends the viewer to the organization's setup page.

Navigation uses the parent-mediated postMessage protocol agreed in dlt-hub/runtime#1301: the iframe sandbox blocks notebooks from navigating anywhere themselves, so the button posts {type: "dlthub:navigate", route: "org-setup"} and the embedding app validates the route against its allowlist, resolves the org from its own session, and navigates. Requires the runtime-side listener (interactiveRunFrame.tsx) to land.

Changes

  • ActionButton gained a route trait. When set, a click posts the navigate message to window.parent (no-op if nothing listens, e.g. standalone marimo). to_next uses route="org-setup".
  • Page 2 removed entirely — page routing, page dots, trial note, prompt card, narrow COLUMN_STYLE, and all their CSS. The ClipboardCopy widget is deleted (page 2 was its only user).
  • Session snapshot regenerated with marimo export session --force-overwrite.
  • Interim iterations reverted within this PR: the button's href/target link, dlt_access.org_setup_url(), and the serve_headless.py org-id guard (the parent supplies the org now, so the notebook never reads it).
  • show_notebook.py derives its URL from dlt_runtime.urls.workspace_url() + the active workspace context, instead of parsing config itself. This also fixes the dev URL: non-prod stacks live on the apex (dlthub.dev, dlthub.test; app.dlthub.dev doesn't resolve), which the runtime's web_ui_base() knows and our old heuristic got wrong. Verified against prod/test/dev/stage.
  • Playground connect simplified — setup runs dlthub workspace connect playground, no --create. The old pre-connect probe read an unauthenticated workspace list as "absent", added --create, and hard-failed with a confusing Workspace 'playground' already exists. Since every account has a playground, the probe (_playground_exists, _workspace_in_list) and the now-unused capture_uv_command are gone.
  • Dev tooling: make workspace-local / make workspace-dev no longer default DLTHUB_CLIENT_SOURCE to ../runtime/clients/cli — they use the released PyPI client (explicit DLTHUB_CLIENT_SOURCE=… still overrides). CHANGELOG trimmed to user-facing entries.

Tests

  • make test (168) + ruff/mypy pass — includes snapshot validity/version tests and the compile-all check that picks up the deleted widget.

🤖 Generated with Claude Code

bjoaquinc and others added 4 commits July 7, 2026 14:59
…setup

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…llowlist

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@bjoaquinc bjoaquinc changed the title feat(notebook): single-page onboarding with Next step linking to org setup feat(notebook): single-page onboarding; Next step navigates via postMessage Jul 7, 2026
bjoaquinc and others added 7 commits July 7, 2026 16:29
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…_base_url

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…no-op clicks sync

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…to user-facing entries

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The account always has a playground workspace, so drop the pre-connect
existence probe and always `connect playground` without --create. The
probe treated an unauthenticated `workspace list` as "workspace absent",
wrongly appended --create, and surfaced a confusing "already exists"
failure. Removes _playground_exists, _workspace_in_list, and the now
unused capture_uv_command helper.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bjoaquinc
bjoaquinc merged commit dcd6952 into devel Jul 8, 2026
10 checks passed
@bjoaquinc
bjoaquinc deleted the feat/notebook-next-to-org-setup branch July 8, 2026 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant